﻿using Domain;
using Domain.Entity;
using Domain.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.AppService.HFAppService
{
    public class HFAppService : IHFAppService
    {
        private readonly IHFRepository hfRepository;

        public HFAppService(IHFRepository hfRepository)
        {
            this.hfRepository = hfRepository;
        }


		public HFFenYE HFfenye(string firstKindName, string secondKindName, string thirdKindName, DateTime startDate, DateTime endDate, int page, int pageSize)
		{
			return hfRepository.HFfenye(firstKindName, secondKindName, thirdKindName, startDate, endDate, page, pageSize);
		}

		public Task<bool> AddHFAsync(HF hf)
		{
            return hfRepository.AddHFAsync(hf);
		}

		public HFFenYE FenYeHFAsync(int zt, int page, int pageSize)
		{
            return hfRepository.FenYeHFAsync(zt,page,pageSize);
		}

		public HFQuery SelectHFQAsync(string zhi)

        {
            return hfRepository.SelectHFQAsync(zhi);
        }

		public Task<bool> UpdateHFAsync(HF hf)
		{
			return hfRepository.UpdateHFAsync(hf);
		}

		public HFFenYE FenYeHFTJAsync(string firstKindName, string secondKindName, string thirdKindName, DateTime startDate, DateTime endDate, int page, int pageSize, int zt)
		{
			return hfRepository.FenYeHFTJAsync(firstKindName, secondKindName, thirdKindName, startDate, endDate, page, pageSize,zt);
		}

		public HFFenYE FenYeHFGJZAsync(int page, int pageSize, int zt, string gjz)
		{
			return hfRepository.FenYeHFGJZAsync(page, pageSize, zt, gjz);
		}
        public Task<bool> RemoveHFQAsyncHFS(string humanId, double DemandSalaraySum, double PaidSalarySum)
        {
            return hfRepository.RemoveHFQAsyncHFS(humanId,DemandSalaraySum, PaidSalarySum);
        }

       public Task<string> GetSalaryGrantIdAsync(string HumanId)
        {
            return hfRepository.GetSalaryGrantIdAsync(HumanId);
        }

		public HFFenYE HFFenYEZTAsync(string firstKindName, string secondKindName, string thirdKindName, string majorKindName, string majorName, DateTime startDate, DateTime endDate, int page, int pageSize, int zt1, int zt2)
		{
			return hfRepository.HFFenYEZTAsync(firstKindName, secondKindName, thirdKindName, majorKindName, majorName, startDate, endDate, page, pageSize, zt1, zt2);
		}

		public HFFenYE FenYeHFGJZZTAsync(int page, int pageSize, int zt1, int zt2, string gjz)
		{
			return hfRepository.FenYeHFGJZZTAsync(page, pageSize, zt1,zt2, gjz);
		}

		public Task<bool> UpdateHFZTAsync(HF hf)
		{
			return hfRepository.UpdateHFZTAsync(hf);
		}

		public Task<bool> DeleteHFAsync(int id)
		{
			return hfRepository.DeleteHFAsync(id);
		}

		public Task<bool> UpdateHFMC(HF hF)
		{
			return hfRepository.UpdateHFMC(hF);
		}
	}
}
